#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
from pytools import mysqltool


def get_table_prefix():
    conn = mysqltool.connect_to_base_dicts()
    q = 'select distinct table_prefix from channel_define'
    return mysqltool.get_a_list_of_string(conn, q)


def create_detail_analytics_table(month):
    conn = mysqltool.connect_to_58_stats()

    q = '''\
CREATE TABLE summary_detail_analytics (
  stat_date DATE NOT NULL COMMENT '统计日期',
  detailPv INT DEFAULT NULL COMMENT '详情页PV',
  detailUv INT DEFAULT NULL COMMENT '详情页UV',
  vistsCount INT DEFAULT NULL COMMENT '详情页独立访问次数',
  listToPv INT DEFAULT NULL COMMENT '列表页到详情页PV',
  souOutPv INT DEFAULT NULL COMMENT '',
  souToPv INT DEFAULT NULL COMMENT '',
  PRIMARY KEY (stat_date)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
'''
    # print q
    mysqltool.query(conn, q)

    q = '''\
CREATE TABLE city_detail_analytics_%s(
  stat_date DATE NOT NULL COMMENT '统计日期',
  area BIGINT NOT NULL COMMENT '表现地域',
  city1 varchar(50) DEFAULT '',
  city2 varchar(50) DEFAULT '',
  city3 varchar(50) DEFAULT '',
  city4 varchar(50) DEFAULT '',
  detailPv INT DEFAULT NULL COMMENT '详情页PV',
  detailUv INT DEFAULT NULL COMMENT '详情页UV',
  vistsCount INT DEFAULT NULL COMMENT '详情页独立访问次数',
  listToPv INT DEFAULT NULL COMMENT '列表页到详情页PV',
  souOutPv INT DEFAULT NULL COMMENT '',
  souToPv INT DEFAULT NULL COMMENT '',
  PRIMARY KEY (stat_date, area)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
''' % (month)
    # print q
    mysqltool.query(conn, q)

    q = '''\
CREATE TABLE cate_detail_analytics_%s(
  stat_date DATE NOT NULL COMMENT '统计日期',
  cate BIGINT NOT NULL COMMENT '表现分类',
  cate1 varchar(50) DEFAULT '',
  cate2 varchar(50) DEFAULT '',
  cate3 varchar(50) DEFAULT '',
  cate4 varchar(50) DEFAULT '',
  cate5 varchar(50) DEFAULT '',
  detailPv INT DEFAULT NULL COMMENT '详情页PV',
  detailUv INT DEFAULT NULL COMMENT '详情页UV',
  vistsCount INT DEFAULT NULL COMMENT '详情页独立访问次数',
  listToPv INT DEFAULT NULL COMMENT '列表页到详情页PV',
  souOutPv INT DEFAULT NULL COMMENT '',
  souToPv INT DEFAULT NULL COMMENT '',
  PRIMARY KEY (stat_date, cate)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
''' % (month)
    # print q
    mysqltool.query(conn, q)


    for k in get_table_prefix():
        q = '''\
CREATE TABLE %s_detail_analytics_%s (
  stat_date DATE NOT NULL COMMENT '统计日期',
  cate BIGINT NOT NULL COMMENT '表现类别',
  area BIGINT NOT NULL COMMENT '表现地域',
  cate1 varchar(50) DEFAULT '',
  cate2 varchar(50) DEFAULT '',
  cate3 varchar(50) DEFAULT '',
  cate4 varchar(50) DEFAULT '',
  cate5 varchar(50) DEFAULT '',
  city1 varchar(50) DEFAULT '',
  city2 varchar(50) DEFAULT '',
  city3 varchar(50) DEFAULT '',
  city4 varchar(50) DEFAULT '',
  detailPv INT DEFAULT NULL COMMENT '详情页PV',
  detailUv INT DEFAULT NULL COMMENT '详情页UV',
  vistsCount INT DEFAULT NULL COMMENT '详情页独立访问次数',
  listToPv INT DEFAULT NULL COMMENT '列表页到详情页PV',
  souOutPv INT DEFAULT NULL COMMENT '',
  souToPv INT DEFAULT NULL COMMENT '',

  PRIMARY KEY (stat_date, cate, area)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
''' % (k, month)
        # print q
        mysqltool.query(conn, q)



def create_list_analytics_table(month):
    conn = mysqltool.connect_to_58_stats()

    q = '''\
CREATE TABLE summary_list_analytics (
  stat_date DATE NOT NULL COMMENT '统计日期',
  actionPv INT DEFAULT NULL COMMENT '浏览量',
  actionUv INT DEFAULT NULL COMMENT '独立用户数',
  actionVisit INT DEFAULT NULL COMMENT '独立访问次数',
  actionLand INT DEFAULT NULL COMMENT '落地页浏览量',
  actionToDetailPv INT DEFAULT NULL COMMENT '从列表页到详情页的浏览量',
  actionToDetailUv INT DEFAULT NULL COMMENT '从列表页到详情页的浏览用户数',
  actionOnePv INT DEFAULT NULL COMMENT '第一页的访问浏览量',
  actionOneToDetailPV INT DEFAULT NULL COMMENT '第一页到详情页的浏览量',
  actionNoResult INT DEFAULT NULL COMMENT '列表页无结果的次数',
  actionMoreResult INT DEFAULT NULL COMMENT '列表页多结果的次数',
  actionVisitResult INT DEFAULT NULL COMMENT '列表页少结果的次数',
  actionBounce INT DEFAULT NULL COMMENT '列表页跳出次数',
  actionExit INT DEFAULT NULL COMMENT '列表页退出次数',
  actionType INT DEFAULT NULL COMMENT '页面类型，0-list,1-search',
  PRIMARY KEY (stat_date)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
'''
    # print q
    mysqltool.query(conn, q)

    q = '''\
CREATE TABLE city_list_analytics_%s (
  stat_date DATE NOT NULL COMMENT '统计日期',
  area BIGINT NOT NULL COMMENT '表现地域',
  city1 varchar(50) DEFAULT '',
  city2 varchar(50) DEFAULT '',
  city3 varchar(50) DEFAULT '',
  city4 varchar(50) DEFAULT '',
  actionPv INT DEFAULT NULL COMMENT '浏览量',
  actionUv INT DEFAULT NULL COMMENT '独立用户数',
  actionVisit INT DEFAULT NULL COMMENT '独立访问次数',
  actionLand INT DEFAULT NULL COMMENT '落地页浏览量',
  actionToDetailPv INT DEFAULT NULL COMMENT '从列表页到详情页的浏览量',
  actionToDetailUv INT DEFAULT NULL COMMENT '从列表页到详情页的浏览用户数',
  actionOnePv INT DEFAULT NULL COMMENT '第一页的访问浏览量',
  actionOneToDetailPV INT DEFAULT NULL COMMENT '第一页到详情页的浏览量',
  actionNoResult INT DEFAULT NULL COMMENT '列表页无结果的次数',
  actionMoreResult INT DEFAULT NULL COMMENT '列表页多结果的次数',
  actionVisitResult INT DEFAULT NULL COMMENT '列表页少结果的次数',
  actionBounce INT DEFAULT NULL COMMENT '列表页跳出次数',
  actionExit INT DEFAULT NULL COMMENT '列表页退出次数',
  actionType INT DEFAULT NULL COMMENT '页面类型，0-list,1-search',
  PRIMARY KEY (stat_date, area)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
''' % (month)
    # print q
    mysqltool.query(conn, q)

    q = '''\
CREATE TABLE cate_list_analytics_%s (
  stat_date DATE NOT NULL COMMENT '统计日期',
  cate BIGINT NOT NULL COMMENT '表现分类',
  cate1 varchar(50) DEFAULT '',
  cate2 varchar(50) DEFAULT '',
  cate3 varchar(50) DEFAULT '',
  cate4 varchar(50) DEFAULT '',
  cate5 varchar(50) DEFAULT '',
  actionPv INT DEFAULT NULL COMMENT '浏览量',
  actionUv INT DEFAULT NULL COMMENT '独立用户数',
  actionVisit INT DEFAULT NULL COMMENT '独立访问次数',
  actionLand INT DEFAULT NULL COMMENT '落地页浏览量',
  actionToDetailPv INT DEFAULT NULL COMMENT '从列表页到详情页的浏览量',
  actionToDetailUv INT DEFAULT NULL COMMENT '从列表页到详情页的浏览用户数',
  actionOnePv INT DEFAULT NULL COMMENT '第一页的访问浏览量',
  actionOneToDetailPV INT DEFAULT NULL COMMENT '第一页到详情页的浏览量',
  actionNoResult INT DEFAULT NULL COMMENT '列表页无结果的次数',
  actionMoreResult INT DEFAULT NULL COMMENT '列表页多结果的次数',
  actionVisitResult INT DEFAULT NULL COMMENT '列表页少结果的次数',
  actionBounce INT DEFAULT NULL COMMENT '列表页跳出次数',
  actionExit INT DEFAULT NULL COMMENT '列表页退出次数',
  actionType INT DEFAULT NULL COMMENT '页面类型，0-list,1-search',
  PRIMARY KEY (stat_date, cate)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
''' % (month)
    # print q
    mysqltool.query(conn, q)

    for k in get_table_prefix():
        q = '''\
CREATE TABLE %s_list_analytics_%s (
  stat_date DATE NOT NULL COMMENT '统计日期',
  cate BIGINT NOT NULL COMMENT '表现类别',
  area BIGINT NOT NULL COMMENT '表现地域',
  cate1 varchar(50) DEFAULT '',
  cate2 varchar(50) DEFAULT '',
  cate3 varchar(50) DEFAULT '',
  cate4 varchar(50) DEFAULT '',
  cate5 varchar(50) DEFAULT '',
  city1 varchar(50) DEFAULT '',
  city2 varchar(50) DEFAULT '',
  city3 varchar(50) DEFAULT '',
  city4 varchar(50) DEFAULT '',
  actionPv INT DEFAULT NULL COMMENT '浏览量',
  actionUv INT DEFAULT NULL COMMENT '独立用户数',
  actionVisit INT DEFAULT NULL COMMENT '独立访问次数',
  actionLand INT DEFAULT NULL COMMENT '落地页浏览量',
  actionToDetailPv INT DEFAULT NULL COMMENT '从列表页到详情页的浏览量',
  actionToDetailUv INT DEFAULT NULL COMMENT '从列表页到详情页的浏览用户数',
  actionOnePv INT DEFAULT NULL COMMENT '第一页的访问浏览量',
  actionOneToDetailPV INT DEFAULT NULL COMMENT '第一页到详情页的浏览量',
  actionNoResult INT DEFAULT NULL COMMENT '列表页无结果的次数',
  actionMoreResult INT DEFAULT NULL COMMENT '列表页多结果的次数',
  actionVisitResult INT DEFAULT NULL COMMENT '列表页少结果的次数',
  actionBounce INT DEFAULT NULL COMMENT '列表页跳出次数',
  actionExit INT DEFAULT NULL COMMENT '列表页退出次数',
  actionType INT DEFAULT NULL COMMENT '页面类型，0-list,1-search',
  PRIMARY KEY (stat_date, cate, area)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
''' % (k, month)
        # print q
        mysqltool.query(conn, q)


if __name__ == '__main__':
    if len(sys.argv) != 2:
        print 'usage: %s month' % (sys.argv[0])
        sys.exit(0)

    create_detail_analytics_table(sys.argv[1])
    create_list_analytics_table(sys.argv[1])
